package com.ljw.punishment.customBiDuifunction;

/**
 * @author lijunwei
 * @date 2025/5/21
 */

import com.ljw.util.RuleDateUtil;
import org.apache.commons.lang3.StringUtils;

import java.util.Date;

/**
 *  mvel 导入的自定义方法
 */
public class CustomFunction {

    /**
     * 比较两个时间
     *
     * @param sourceDate 开始时间
     * @param afterDate  结束时间
     * @return
     */
    public static  boolean  dateAfter(Date sourceDate, Date afterDate){
        if (null == sourceDate || null == afterDate){
            return  false;
        }
        return sourceDate.after(afterDate);
    }

    /**
     * @return  当前时间
     */
    public static  Date getCurrentDate(){
        return  new Date();
    }


    public static Date strToDate(String dateStr){
        return RuleDateUtil.parseStrToDateFormat(dateStr,RuleDateUtil.dateTimeString);
    }

    public static boolean dateAfterStrNow(String paramDateStr){
        if (StringUtils.isBlank(paramDateStr)){
            return false;
        }
        Date date = RuleDateUtil.parseStrToDateFormat(paramDateStr, RuleDateUtil.dateTimeString);
        return date.after(new Date());
    }


    public static boolean dateBeforeStrNow(String paramDateStr){
        if (StringUtils.isBlank(paramDateStr)){
            return false;
        }
        Date date = RuleDateUtil.parseStrToDateFormat(paramDateStr, RuleDateUtil.dateTimeString);
        return date.before(new Date());
    }

    /**
     * 外部传入参数 在  给定默认时间 之后
     * @param date  给定默认时间
     * @param paramDate 外部传入参数
     * @return true/false
     */
    public static boolean dAfter(String date , String paramDate){
        if (StringUtils.isBlank(date) || StringUtils.isBlank(paramDate)){
            return false;
        }
        Date toDateFormat = RuleDateUtil.parseStrToDateFormat(date, RuleDateUtil.dateTimeString);
        Date paramDateFormat = RuleDateUtil.parseStrToDateFormat(paramDate, RuleDateUtil.dateTimeString);

        return toDateFormat.before(paramDateFormat);
    }

    /**
     * 外部传入参数 在  给定默认时间 之前
     * @param date  给定默认时间
     * @param paramDate 外部传入参数
     * @return true/false
     */
    public static boolean dBefore(String date , String paramDate){
        if (StringUtils.isBlank(date) || StringUtils.isBlank(paramDate)){
            return false;
        }
        Date toDateFormat = RuleDateUtil.parseStrToDateFormat(date, RuleDateUtil.dateTimeString);
        Date paramDateFormat = RuleDateUtil.parseStrToDateFormat(paramDate, RuleDateUtil.dateTimeString);

        return toDateFormat.after(paramDateFormat);
    }

}
